package com.example.teachingevaluationsystem.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.example.teachingevaluationsystem.entity.Menu;
import com.example.teachingevaluationsystem.vo.MenuVo;
import com.example.teachingevaluationsystem.vo.ReturnDistributionVo;

import java.util.List;

/**
 * 服务类
 *
 * @author 王妍
 * @since 2022-02-20
 */
public interface IMenuService extends IService<Menu> {

  /**
   * 通过用户id加载菜单
   *
   * @param userName 用户名
   * @return 菜单集合
   */
  MenuVo loadMenuByUserName(String userName);

  /**
   * 获取菜单的子菜单
   *
   * @param menuVo 菜单
   * @return 包含子菜单的
   */
  MenuVo getSubMenu(MenuVo menuVo);

  /**
   * 为角色配置菜单
   *
   * @param roleId 角色id
   * @param menuIds 菜单Ids
   */
  void configureMenuForRole(Long roleId, List<Long> menuIds);

  /**
   * 获取角色的菜单列表
   *
   * @param roleId 角色id
   * @return 菜单的集合
   */
  ReturnDistributionVo<Menu> getMenuDistribution(Long roleId);
}
